//
//  AEButton.h
//  GameJam-Mac
//
//  Created by Clover Sin on 12/27/11.
//  Copyright (c) 2011 Snow Poem Society. All rights reserved.
//

#ifndef GameJam_Mac_AEButton_h
#define GameJam_Mac_AEButton_h

#include "AEControl.h"
#include "AELabel.h"

class AEButton : public AEControl
{
public:
    
    AEButton(AEControl* parent, AETheme* theme);
    
    // Reimplemented methods. 
    
    virtual bool MouseEnter(Vector2 coor);
    
    virtual bool MouseLeave(Vector2 coor);
    
    virtual bool MouseHover(Vector2 coor);
    
    virtual bool MouseDown(Vector2 coor, MouseButtonInput button);
    
    virtual bool MouseUp(Vector2 coor, MouseButtonInput button);
    
    virtual void prepareForAddingToWorld();
    
    // Featured methods.
    
    // When button clicked, send message to ViewController.
    virtual bool MouseClick(MouseButtonInput button);
    
    /** 
     * Set the text displayed on the button.
     * 
     * @param text The text you want the button to show.
     */
    void setText(const String& text);
    
    /** 
     * Get the text on this button. 
     * 
     * @reture Return text.
     */
    String getText();
    
protected:
    
    AELabel* _label;
    
};

#endif
